//
// CLiveInputFilters.h
//

#ifndef __H_CLiveInputFilters__
#define __H_CLiveInputFilters__

#include "CDXGraph.h"
#include "GlobalDefs.h"

class CLiveCapture;
class CSmartTeeFilter;
class CLiveInputFilters
{
protected:
	CDXGraph *			mGraph;
	CLiveCapture *		mLiveCapture;

	CSmartTeeFilter *	mSmartTee;

public:
	CLiveInputFilters(CDXGraph * inGraph);
	virtual ~CLiveInputFilters();

public:
	virtual BOOL Create(void);
	void SetLiveCapture(CLiveCapture * inData);

	virtual BOOL IsAGPCard(void);
	virtual BOOL IsFieldPicture(void);
	virtual IPin * GetVideoOutPin(void);
	virtual IPin * GetPreviewPin(void);
	virtual IPin * GetAudioOutPin(void);

	virtual long GetVideoConnectorCount(void);
	virtual CString GetVideoConnectorName(long inIndex);
	virtual long GetVideoConnectorType(long inIndex);
	virtual void SetVideoConnector(long inPhysicalType);

	virtual Signal_Resolution GetVideoResolution(void);
	virtual void SetVideoResolution(Signal_Resolution inResolution);
	virtual long GetAllTVFormats(void);

	virtual long GetAudioConnectorCount(void);
	virtual CString GetAudioConnectorName(long inIndex);
	virtual void SetAudioConnector(long inIndex);
	virtual void SetAudioMixLevel(double inLevel);

	virtual void ShowVideoCapturePropertyPage(void);
	virtual void ShowAudioCapturePropertyPage(void);
	virtual void ShowTVTunerPropertyPage(void);

	virtual BOOL IsActiveDeviceLost(IUnknown * pLost);

protected:
	virtual void Release(void);
};

#endif // __H_CLiveInputFilters__